<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Os1: g2o::OptimizationAlgorithmLevenberg Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Os1
   &#160;<span id="projectnumber">1</span>
   </div>
   <div id="projectbrief">OrbSlam2 documentado y modificado</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,'Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classg2o_1_1_optimization_algorithm_levenberg.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classg2o_1_1_optimization_algorithm_levenberg-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">g2o::OptimizationAlgorithmLevenberg Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Implementation of the Levenberg Algorithm.  
 <a href="classg2o_1_1_optimization_algorithm_levenberg.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="optimization__algorithm__levenberg_8h_source.html">optimization_algorithm_levenberg.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for g2o::OptimizationAlgorithmLevenberg:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classg2o_1_1_optimization_algorithm_levenberg__inherit__graph.svg" width="190" height="216"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for g2o::OptimizationAlgorithmLevenberg:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classg2o_1_1_optimization_algorithm_levenberg__coll__graph.svg" width="1006" height="603"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:afa4684ccfb8b87e85d0102cbe412f105"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#afa4684ccfb8b87e85d0102cbe412f105">currentLambda</a> () const</td></tr>
<tr class="memdesc:afa4684ccfb8b87e85d0102cbe412f105"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the currently used damping factor  <a href="#afa4684ccfb8b87e85d0102cbe412f105">More...</a><br /></td></tr>
<tr class="separator:afa4684ccfb8b87e85d0102cbe412f105"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d458d8a89069fab92fab75c1255a523"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a6d458d8a89069fab92fab75c1255a523">levenbergIteration</a> ()</td></tr>
<tr class="memdesc:a6d458d8a89069fab92fab75c1255a523"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the number of levenberg iterations performed in the last round  <a href="#a6d458d8a89069fab92fab75c1255a523">More...</a><br /></td></tr>
<tr class="separator:a6d458d8a89069fab92fab75c1255a523"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d467a866c6ee90aaed9b4ccaf29e5e5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a5d467a866c6ee90aaed9b4ccaf29e5e5">maxTrialsAfterFailure</a> () const</td></tr>
<tr class="memdesc:a5d467a866c6ee90aaed9b4ccaf29e5e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the number of inner iterations for Levenberg-Marquardt  <a href="#a5d467a866c6ee90aaed9b4ccaf29e5e5">More...</a><br /></td></tr>
<tr class="separator:a5d467a866c6ee90aaed9b4ccaf29e5e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecdac695d6406eb2234bbd8a0c4d53a3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#aecdac695d6406eb2234bbd8a0c4d53a3">OptimizationAlgorithmLevenberg</a> (<a class="el" href="classg2o_1_1_solver.html">Solver</a> *<a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a85473a4073c76b1a52cf9cf175e31c45">solver</a>)</td></tr>
<tr class="memdesc:aecdac695d6406eb2234bbd8a0c4d53a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">construct the Levenberg algorithm, which will use the given <a class="el" href="classg2o_1_1_solver.html" title="Generic interface for a sparse solver operating on a graph which solves one iteration of the lineariz...">Solver</a> for solving the linearized system.  <a href="#aecdac695d6406eb2234bbd8a0c4d53a3">More...</a><br /></td></tr>
<tr class="separator:aecdac695d6406eb2234bbd8a0c4d53a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67308ead9762f478e29385229ea4b138"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a67308ead9762f478e29385229ea4b138">printVerbose</a> (std::ostream &amp;os) const</td></tr>
<tr class="memdesc:a67308ead9762f478e29385229ea4b138"><td class="mdescLeft">&#160;</td><td class="mdescRight">called by the optimizer if verbose.  <a href="#a67308ead9762f478e29385229ea4b138">More...</a><br /></td></tr>
<tr class="separator:a67308ead9762f478e29385229ea4b138"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fd2212e456428e44ddac693f6d27ac8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a0fd2212e456428e44ddac693f6d27ac8">setMaxTrialsAfterFailure</a> (int max_trials)</td></tr>
<tr class="memdesc:a0fd2212e456428e44ddac693f6d27ac8"><td class="mdescLeft">&#160;</td><td class="mdescRight">the number of internal iteration if an update step increases chi^2 within Levenberg-Marquardt  <a href="#a0fd2212e456428e44ddac693f6d27ac8">More...</a><br /></td></tr>
<tr class="separator:a0fd2212e456428e44ddac693f6d27ac8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9388e5e7800b18acb0db0a9a7be031a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a9388e5e7800b18acb0db0a9a7be031a6">setUserLambdaInit</a> (double lambda)</td></tr>
<tr class="memdesc:a9388e5e7800b18acb0db0a9a7be031a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">specify the initial lambda used for the first iteraion, if not given the <a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> tries to compute a suitable value  <a href="#a9388e5e7800b18acb0db0a9a7be031a6">More...</a><br /></td></tr>
<tr class="separator:a9388e5e7800b18acb0db0a9a7be031a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7140fa989b54eac4e09ba17829dcada0"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classg2o_1_1_optimization_algorithm.html#a705d58d7bc19528a8ab718570d090cdf">SolverResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a7140fa989b54eac4e09ba17829dcada0">solve</a> (int iteration, bool online=false)</td></tr>
<tr class="memdesc:a7140fa989b54eac4e09ba17829dcada0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solve one iteration.  <a href="#a7140fa989b54eac4e09ba17829dcada0">More...</a><br /></td></tr>
<tr class="separator:a7140fa989b54eac4e09ba17829dcada0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a4d18c98361a1288db724136d353596"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a4a4d18c98361a1288db724136d353596">userLambdaInit</a> ()</td></tr>
<tr class="memdesc:a4a4d18c98361a1288db724136d353596"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the lambda set by the user, if &lt; 0 the <a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> will compute the initial lambda  <a href="#a4a4d18c98361a1288db724136d353596">More...</a><br /></td></tr>
<tr class="separator:a4a4d18c98361a1288db724136d353596"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a926c821217c53b10fec9275b6fa5e548"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a926c821217c53b10fec9275b6fa5e548">~OptimizationAlgorithmLevenberg</a> ()</td></tr>
<tr class="separator:a926c821217c53b10fec9275b6fa5e548"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classg2o_1_1_optimization_algorithm_with_hessian')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html">g2o::OptimizationAlgorithmWithHessian</a></td></tr>
<tr class="memitem:aa84732c8554039ba0152693837bd1b4a inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#aa84732c8554039ba0152693837bd1b4a">buildLinearStructure</a> ()</td></tr>
<tr class="separator:aa84732c8554039ba0152693837bd1b4a inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1959727df2b7cf233a171cfed246e9a inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#af1959727df2b7cf233a171cfed246e9a">computeMarginals</a> (<a class="el" href="classg2o_1_1_sparse_block_matrix.html">SparseBlockMatrix</a>&lt; MatrixXd &gt; &amp;spinv, const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;blockIndices)</td></tr>
<tr class="memdesc:af1959727df2b7cf233a171cfed246e9a inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="mdescLeft">&#160;</td><td class="mdescRight">computes the block diagonal elements of the pattern specified in the input and stores them in given <a class="el" href="classg2o_1_1_sparse_block_matrix.html" title="Sparse matrix which uses blocks. ">SparseBlockMatrix</a>.  <a href="classg2o_1_1_optimization_algorithm_with_hessian.html#af1959727df2b7cf233a171cfed246e9a">More...</a><br /></td></tr>
<tr class="separator:af1959727df2b7cf233a171cfed246e9a inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae067a9c2961718dc8a37e3b8478b6d01 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#ae067a9c2961718dc8a37e3b8478b6d01">init</a> (bool online=false)</td></tr>
<tr class="memdesc:ae067a9c2961718dc8a37e3b8478b6d01 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the solver, called once before the first call to <a class="el" href="classg2o_1_1_optimization_algorithm.html#ab174deeeb2551ceaf715ea09f0f9c077" title="Solve one iteration. ">solve()</a>  <a href="classg2o_1_1_optimization_algorithm_with_hessian.html#ae067a9c2961718dc8a37e3b8478b6d01">More...</a><br /></td></tr>
<tr class="separator:ae067a9c2961718dc8a37e3b8478b6d01 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1358f3500efe8b95a5af4a1b0edecdf0 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a1358f3500efe8b95a5af4a1b0edecdf0">OptimizationAlgorithmWithHessian</a> (<a class="el" href="classg2o_1_1_solver.html">Solver</a> *<a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a85473a4073c76b1a52cf9cf175e31c45">solver</a>)</td></tr>
<tr class="separator:a1358f3500efe8b95a5af4a1b0edecdf0 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a655aee24aae72b55f5edafb0a7a15137 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a655aee24aae72b55f5edafb0a7a15137">setWriteDebug</a> (bool <a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#aee8fc3dadc8bfbd50409f2e9940cbebd">writeDebug</a>)</td></tr>
<tr class="memdesc:a655aee24aae72b55f5edafb0a7a15137 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="mdescLeft">&#160;</td><td class="mdescRight">write debug output of the Hessian if system is not positive definite  <a href="classg2o_1_1_optimization_algorithm_with_hessian.html#a655aee24aae72b55f5edafb0a7a15137">More...</a><br /></td></tr>
<tr class="separator:a655aee24aae72b55f5edafb0a7a15137 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85473a4073c76b1a52cf9cf175e31c45 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_solver.html">Solver</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a85473a4073c76b1a52cf9cf175e31c45">solver</a> ()</td></tr>
<tr class="memdesc:a85473a4073c76b1a52cf9cf175e31c45 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the underlying solver used to solve the linear system  <a href="classg2o_1_1_optimization_algorithm_with_hessian.html#a85473a4073c76b1a52cf9cf175e31c45">More...</a><br /></td></tr>
<tr class="separator:a85473a4073c76b1a52cf9cf175e31c45 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ceacb3dddb14121b03e0afe7b7cfeaa inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a3ceacb3dddb14121b03e0afe7b7cfeaa">updateLinearSystem</a> ()</td></tr>
<tr class="separator:a3ceacb3dddb14121b03e0afe7b7cfeaa inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adadb23f135e037ce760f4415a0f26269 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#adadb23f135e037ce760f4415a0f26269">updateStructure</a> (const std::vector&lt; <a class="el" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a> *&gt; &amp;vset, const <a class="el" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">HyperGraph::EdgeSet</a> &amp;edges)</td></tr>
<tr class="memdesc:adadb23f135e037ce760f4415a0f26269 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="mdescLeft">&#160;</td><td class="mdescRight">update the structures for online processing  <a href="classg2o_1_1_optimization_algorithm_with_hessian.html#adadb23f135e037ce760f4415a0f26269">More...</a><br /></td></tr>
<tr class="separator:adadb23f135e037ce760f4415a0f26269 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee8fc3dadc8bfbd50409f2e9940cbebd inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#aee8fc3dadc8bfbd50409f2e9940cbebd">writeDebug</a> () const</td></tr>
<tr class="separator:aee8fc3dadc8bfbd50409f2e9940cbebd inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cfed4c23f1b09829cf4857cf2213745 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a9cfed4c23f1b09829cf4857cf2213745">~OptimizationAlgorithmWithHessian</a> ()</td></tr>
<tr class="separator:a9cfed4c23f1b09829cf4857cf2213745 inherit pub_methods_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classg2o_1_1_optimization_algorithm"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classg2o_1_1_optimization_algorithm')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classg2o_1_1_optimization_algorithm.html">g2o::OptimizationAlgorithm</a></td></tr>
<tr class="memitem:a205013e0425b7bbae01cd16caf500ebb inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#a205013e0425b7bbae01cd16caf500ebb">OptimizationAlgorithm</a> ()</td></tr>
<tr class="separator:a205013e0425b7bbae01cd16caf500ebb inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a040b3e3fd814d9928fa73ae6e98cedc5 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#a040b3e3fd814d9928fa73ae6e98cedc5">optimizer</a> () const</td></tr>
<tr class="memdesc:a040b3e3fd814d9928fa73ae6e98cedc5 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the optimizer operating on  <a href="classg2o_1_1_optimization_algorithm.html#a040b3e3fd814d9928fa73ae6e98cedc5">More...</a><br /></td></tr>
<tr class="separator:a040b3e3fd814d9928fa73ae6e98cedc5 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6ca7a2adbd25615be78316bc811a315 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#ac6ca7a2adbd25615be78316bc811a315">optimizer</a> ()</td></tr>
<tr class="separator:ac6ca7a2adbd25615be78316bc811a315 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a830831cbe8357957188440c2f22bed91 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#a830831cbe8357957188440c2f22bed91">printProperties</a> (std::ostream &amp;os) const</td></tr>
<tr class="memdesc:a830831cbe8357957188440c2f22bed91 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">print the properties to a stream in a human readable fashion  <a href="classg2o_1_1_optimization_algorithm.html#a830831cbe8357957188440c2f22bed91">More...</a><br /></td></tr>
<tr class="separator:a830831cbe8357957188440c2f22bed91 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0901951b7accc6744447c82dd043a07e inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classg2o_1_1_property_map.html">PropertyMap</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#a0901951b7accc6744447c82dd043a07e">properties</a> () const</td></tr>
<tr class="memdesc:a0901951b7accc6744447c82dd043a07e inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">return the properties of the solver  <a href="classg2o_1_1_optimization_algorithm.html#a0901951b7accc6744447c82dd043a07e">More...</a><br /></td></tr>
<tr class="separator:a0901951b7accc6744447c82dd043a07e inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff88a3dc8357c98712ff0047e601bd5e inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#aff88a3dc8357c98712ff0047e601bd5e">setOptimizer</a> (<a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> *<a class="el" href="classg2o_1_1_optimization_algorithm.html#a040b3e3fd814d9928fa73ae6e98cedc5">optimizer</a>)</td></tr>
<tr class="memdesc:aff88a3dc8357c98712ff0047e601bd5e inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">specify on which optimizer the solver should work on  <a href="classg2o_1_1_optimization_algorithm.html#aff88a3dc8357c98712ff0047e601bd5e">More...</a><br /></td></tr>
<tr class="separator:aff88a3dc8357c98712ff0047e601bd5e inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa05a6380f936c728a574c7c272bcc524 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#aa05a6380f936c728a574c7c272bcc524">updatePropertiesFromString</a> (const std::string &amp;propString)</td></tr>
<tr class="memdesc:aa05a6380f936c728a574c7c272bcc524 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">update the properties from a string, see <a class="el" href="classg2o_1_1_property_map.html#a0407e6a72afafd608f13cfdffc6ffc06" title="update the map based on a name=value string, e.g., name1=val1,name2=val2 ">PropertyMap::updateMapFromString()</a>  <a href="classg2o_1_1_optimization_algorithm.html#aa05a6380f936c728a574c7c272bcc524">More...</a><br /></td></tr>
<tr class="separator:aa05a6380f936c728a574c7c272bcc524 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2516e3d66596ec9c9dfdd08d48e90f9 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#af2516e3d66596ec9c9dfdd08d48e90f9">~OptimizationAlgorithm</a> ()</td></tr>
<tr class="separator:af2516e3d66596ec9c9dfdd08d48e90f9 inherit pub_methods_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a2141aed034c5db8b2943aad5853b0cde"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a2141aed034c5db8b2943aad5853b0cde">computeLambdaInit</a> () const</td></tr>
<tr class="memdesc:a2141aed034c5db8b2943aad5853b0cde"><td class="mdescLeft">&#160;</td><td class="mdescRight">helper for Levenberg, this function computes the initial damping factor, if the user did not specify an own value, see <a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a9388e5e7800b18acb0db0a9a7be031a6" title="specify the initial lambda used for the first iteraion, if not given the SparseOptimizer tries to com...">setUserLambdaInit()</a>  <a href="#a2141aed034c5db8b2943aad5853b0cde">More...</a><br /></td></tr>
<tr class="separator:a2141aed034c5db8b2943aad5853b0cde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa49f788d13c2ab6026ebaf36f887dc9a"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#aa49f788d13c2ab6026ebaf36f887dc9a">computeScale</a> () const</td></tr>
<tr class="separator:aa49f788d13c2ab6026ebaf36f887dc9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:aec7bba815e20361aa7ccc4661f90a034"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#aec7bba815e20361aa7ccc4661f90a034">_currentLambda</a></td></tr>
<tr class="separator:aec7bba815e20361aa7ccc4661f90a034"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4951bc2e2fcca2c4eae4864690a4c087"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a4951bc2e2fcca2c4eae4864690a4c087">_goodStepLowerScale</a></td></tr>
<tr class="memdesc:a4951bc2e2fcca2c4eae4864690a4c087"><td class="mdescLeft">&#160;</td><td class="mdescRight">lower bound for lambda decrease if a good LM step  <a href="#a4951bc2e2fcca2c4eae4864690a4c087">More...</a><br /></td></tr>
<tr class="separator:a4951bc2e2fcca2c4eae4864690a4c087"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16d8b5540cd7ae0c132a565e3f49c021"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a16d8b5540cd7ae0c132a565e3f49c021">_goodStepUpperScale</a></td></tr>
<tr class="memdesc:a16d8b5540cd7ae0c132a565e3f49c021"><td class="mdescLeft">&#160;</td><td class="mdescRight">upper bound for lambda decrease if a good LM step  <a href="#a16d8b5540cd7ae0c132a565e3f49c021">More...</a><br /></td></tr>
<tr class="separator:a16d8b5540cd7ae0c132a565e3f49c021"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2319771c8d3ee0f773bdb86d5416bab7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a2319771c8d3ee0f773bdb86d5416bab7">_levenbergIterations</a></td></tr>
<tr class="memdesc:a2319771c8d3ee0f773bdb86d5416bab7"><td class="mdescLeft">&#160;</td><td class="mdescRight">the numer of levenberg iterations performed to accept the last step  <a href="#a2319771c8d3ee0f773bdb86d5416bab7">More...</a><br /></td></tr>
<tr class="separator:a2319771c8d3ee0f773bdb86d5416bab7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f3b03bbcb2dbeed686069bed8783b80"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_property.html">Property</a>&lt; int &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a1f3b03bbcb2dbeed686069bed8783b80">_maxTrialsAfterFailure</a></td></tr>
<tr class="separator:a1f3b03bbcb2dbeed686069bed8783b80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f0b375c45a9f91f2676548591273c8d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a7f0b375c45a9f91f2676548591273c8d">_nBad</a></td></tr>
<tr class="separator:a7f0b375c45a9f91f2676548591273c8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8bcb1a957056cba788072992c5a8a7a1"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a8bcb1a957056cba788072992c5a8a7a1">_ni</a></td></tr>
<tr class="separator:a8bcb1a957056cba788072992c5a8a7a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac09602f23e52c5dbc6be1bf77e9f9d5f"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#ac09602f23e52c5dbc6be1bf77e9f9d5f">_tau</a></td></tr>
<tr class="separator:ac09602f23e52c5dbc6be1bf77e9f9d5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a021c97d3f8205ec2ae7fde147f98b452"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_property.html">Property</a>&lt; double &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a021c97d3f8205ec2ae7fde147f98b452">_userLambdaInit</a></td></tr>
<tr class="separator:a021c97d3f8205ec2ae7fde147f98b452"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classg2o_1_1_optimization_algorithm_with_hessian"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classg2o_1_1_optimization_algorithm_with_hessian')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html">g2o::OptimizationAlgorithmWithHessian</a></td></tr>
<tr class="memitem:a88a2d1dccee8f7481ece407f2681a151 inherit pro_attribs_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_solver.html">Solver</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a88a2d1dccee8f7481ece407f2681a151">_solver</a></td></tr>
<tr class="separator:a88a2d1dccee8f7481ece407f2681a151 inherit pro_attribs_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6dd1e4e8dc2d09233c40de02b2c9fe8c inherit pro_attribs_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_property.html">Property</a>&lt; bool &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm_with_hessian.html#a6dd1e4e8dc2d09233c40de02b2c9fe8c">_writeDebug</a></td></tr>
<tr class="separator:a6dd1e4e8dc2d09233c40de02b2c9fe8c inherit pro_attribs_classg2o_1_1_optimization_algorithm_with_hessian"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classg2o_1_1_optimization_algorithm"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classg2o_1_1_optimization_algorithm')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classg2o_1_1_optimization_algorithm.html">g2o::OptimizationAlgorithm</a></td></tr>
<tr class="memitem:a6017c344be0d9f09d6674849849c6b60 inherit pro_attribs_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#a6017c344be0d9f09d6674849849c6b60">_optimizer</a></td></tr>
<tr class="memdesc:a6017c344be0d9f09d6674849849c6b60 inherit pro_attribs_classg2o_1_1_optimization_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">the optimizer the solver is working on  <a href="classg2o_1_1_optimization_algorithm.html#a6017c344be0d9f09d6674849849c6b60">More...</a><br /></td></tr>
<tr class="separator:a6017c344be0d9f09d6674849849c6b60 inherit pro_attribs_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae37b494f69b483a3fcafa944e987e325 inherit pro_attribs_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classg2o_1_1_property_map.html">PropertyMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#ae37b494f69b483a3fcafa944e987e325">_properties</a></td></tr>
<tr class="memdesc:ae37b494f69b483a3fcafa944e987e325 inherit pro_attribs_classg2o_1_1_optimization_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">the properties of your solver, use this to store the parameters of your solver  <a href="classg2o_1_1_optimization_algorithm.html#ae37b494f69b483a3fcafa944e987e325">More...</a><br /></td></tr>
<tr class="separator:ae37b494f69b483a3fcafa944e987e325 inherit pro_attribs_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classg2o_1_1_optimization_algorithm"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classg2o_1_1_optimization_algorithm')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classg2o_1_1_optimization_algorithm.html">g2o::OptimizationAlgorithm</a></td></tr>
<tr class="memitem:a705d58d7bc19528a8ab718570d090cdf inherit pub_types_classg2o_1_1_optimization_algorithm"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classg2o_1_1_optimization_algorithm.html#a705d58d7bc19528a8ab718570d090cdf">SolverResult</a> { <a class="el" href="classg2o_1_1_optimization_algorithm.html#a705d58d7bc19528a8ab718570d090cdfa3c3d3db3bae371ad18611e0ec5aa99ef">Terminate</a> =2, 
<a class="el" href="classg2o_1_1_optimization_algorithm.html#a705d58d7bc19528a8ab718570d090cdfa5e94b8ee7748cc4c1a5c86de2e8cc962">OK</a> =1, 
<a class="el" href="classg2o_1_1_optimization_algorithm.html#a705d58d7bc19528a8ab718570d090cdfa375598c3a146bb5116b5d19bb1a88f84">Fail</a> =-1
 }</td></tr>
<tr class="separator:a705d58d7bc19528a8ab718570d090cdf inherit pub_types_classg2o_1_1_optimization_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation of the Levenberg Algorithm. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aecdac695d6406eb2234bbd8a0c4d53a3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">g2o::OptimizationAlgorithmLevenberg::OptimizationAlgorithmLevenberg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classg2o_1_1_solver.html">Solver</a> *&#160;</td>
          <td class="paramname"><em>solver</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>construct the Levenberg algorithm, which will use the given <a class="el" href="classg2o_1_1_solver.html" title="Generic interface for a sparse solver operating on a graph which solves one iteration of the lineariz...">Solver</a> for solving the linearized system. </p>

</div>
</div>
<a id="a926c821217c53b10fec9275b6fa5e548"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">g2o::OptimizationAlgorithmLevenberg::~OptimizationAlgorithmLevenberg </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a2141aed034c5db8b2943aad5853b0cde"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double g2o::OptimizationAlgorithmLevenberg::computeLambdaInit </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>helper for Levenberg, this function computes the initial damping factor, if the user did not specify an own value, see <a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html#a9388e5e7800b18acb0db0a9a7be031a6" title="specify the initial lambda used for the first iteraion, if not given the SparseOptimizer tries to com...">setUserLambdaInit()</a> </p>

</div>
</div>
<a id="aa49f788d13c2ab6026ebaf36f887dc9a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double g2o::OptimizationAlgorithmLevenberg::computeScale </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="afa4684ccfb8b87e85d0102cbe412f105"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double g2o::OptimizationAlgorithmLevenberg::currentLambda </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>return the currently used damping factor </p>

</div>
</div>
<a id="a6d458d8a89069fab92fab75c1255a523"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int g2o::OptimizationAlgorithmLevenberg::levenbergIteration </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>return the number of levenberg iterations performed in the last round </p>

</div>
</div>
<a id="a5d467a866c6ee90aaed9b4ccaf29e5e5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int g2o::OptimizationAlgorithmLevenberg::maxTrialsAfterFailure </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>get the number of inner iterations for Levenberg-Marquardt </p>

</div>
</div>
<a id="a67308ead9762f478e29385229ea4b138"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::OptimizationAlgorithmLevenberg::printVerbose </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>called by the optimizer if verbose. </p>
<p>re-implement, if you want to print something </p>

<p>Reimplemented from <a class="el" href="classg2o_1_1_optimization_algorithm.html#a6683d35e67402b50924bc4744b6e282a">g2o::OptimizationAlgorithm</a>.</p>

</div>
</div>
<a id="a0fd2212e456428e44ddac693f6d27ac8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::OptimizationAlgorithmLevenberg::setMaxTrialsAfterFailure </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>max_trials</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>the number of internal iteration if an update step increases chi^2 within Levenberg-Marquardt </p>

</div>
</div>
<a id="a9388e5e7800b18acb0db0a9a7be031a6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void g2o::OptimizationAlgorithmLevenberg::setUserLambdaInit </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>lambda</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>specify the initial lambda used for the first iteraion, if not given the <a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> tries to compute a suitable value </p>

</div>
</div>
<a id="a7140fa989b54eac4e09ba17829dcada0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_optimization_algorithm.html#a705d58d7bc19528a8ab718570d090cdf">OptimizationAlgorithm::SolverResult</a> g2o::OptimizationAlgorithmLevenberg::solve </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>iteration</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>online</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Solve one iteration. </p>
<p>The <a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> running on-top will call this for the given number of iterations. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iteration</td><td>indicates the current iteration </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classg2o_1_1_optimization_algorithm.html#ab174deeeb2551ceaf715ea09f0f9c077">g2o::OptimizationAlgorithm</a>.</p>

</div>
</div>
<a id="a4a4d18c98361a1288db724136d353596"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double g2o::OptimizationAlgorithmLevenberg::userLambdaInit </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>return the lambda set by the user, if &lt; 0 the <a class="el" href="classg2o_1_1_sparse_optimizer.html">SparseOptimizer</a> will compute the initial lambda </p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="aec7bba815e20361aa7ccc4661f90a034"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double g2o::OptimizationAlgorithmLevenberg::_currentLambda</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a4951bc2e2fcca2c4eae4864690a4c087"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double g2o::OptimizationAlgorithmLevenberg::_goodStepLowerScale</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>lower bound for lambda decrease if a good LM step </p>

</div>
</div>
<a id="a16d8b5540cd7ae0c132a565e3f49c021"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double g2o::OptimizationAlgorithmLevenberg::_goodStepUpperScale</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>upper bound for lambda decrease if a good LM step </p>

</div>
</div>
<a id="a2319771c8d3ee0f773bdb86d5416bab7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int g2o::OptimizationAlgorithmLevenberg::_levenbergIterations</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>the numer of levenberg iterations performed to accept the last step </p>

</div>
</div>
<a id="a1f3b03bbcb2dbeed686069bed8783b80"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_property.html">Property</a>&lt;int&gt;* g2o::OptimizationAlgorithmLevenberg::_maxTrialsAfterFailure</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a7f0b375c45a9f91f2676548591273c8d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int g2o::OptimizationAlgorithmLevenberg::_nBad</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a8bcb1a957056cba788072992c5a8a7a1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double g2o::OptimizationAlgorithmLevenberg::_ni</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ac09602f23e52c5dbc6be1bf77e9f9d5f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double g2o::OptimizationAlgorithmLevenberg::_tau</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a021c97d3f8205ec2ae7fde147f98b452"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classg2o_1_1_property.html">Property</a>&lt;double&gt;* g2o::OptimizationAlgorithmLevenberg::_userLambdaInit</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/home/alejandro/Desarrollo eclipse/os1/Thirdparty/g2o/g2o/core/<a class="el" href="optimization__algorithm__levenberg_8h_source.html">optimization_algorithm_levenberg.h</a></li>
<li>/home/alejandro/Desarrollo eclipse/os1/Thirdparty/g2o/g2o/core/<a class="el" href="optimization__algorithm__levenberg_8cpp.html">optimization_algorithm_levenberg.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceg2o.html">g2o</a></li><li class="navelem"><a class="el" href="classg2o_1_1_optimization_algorithm_levenberg.html">OptimizationAlgorithmLevenberg</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>
